from flask import redirect,url_for,request
from ..models import *
from flask_admin.contrib.sqla import ModelView
from flask_admin import Admin, BaseView, expose
# manager = Blueprint('manager', __name__, template_folder='templates')

myadmin = Admin(name='库存后台管理系统', template_mode='bootstrap3')

class UserAdmin(ModelView):
    '''用户管理'''
    can_create          = True # 打开添加
    can_view_details    = True # 打开细节显示
    can_export          = True # 打开导出
    column_display_pk   = True # 显示主键
    # 去掉显示password这一列
    #  column_exclude_list = ['password', ]
    # ['username', 'telephone']这两列可修改
    column_editable_list = ['username', 'telephone']
    # 打开索引,可按['username',]模糊索引，
    column_searchable_list = ['username']
    # 重命名列
    column_labels       = {
            'id': u'编号',
            'username': u'姓名',
            'password': u'密码',
            'telephone': u'电话',
            'email': u'邮箱',
            'qq': u'qq',
        }

class NodeAdmin(ModelView):
    '''用户管理'''
    can_create          = True # 打开添加
    can_view_details    = True # 打开细节显示
    can_export          = True # 打开导出
    column_display_pk   = True # 显示主键
    # 去掉显示password这一列
    #  column_exclude_list = ['password', ]
    # ['username', 'telephone']这两列可修改
    column_editable_list = ['name',
                            'cid',
                            'position',
                            'alive',
                            'status']
    # 打开索引,可按['username',]模糊索引，
    column_searchable_list = ['name']
    # 重命名列
    column_labels       = {
            'name': u'名称',
            'cid': u'唯一码',
            'number': u'编号',
            'status': u'状态',
            'alive': u'在线',
            'version': u'固件版本',
            'position': u'位置',
            'add_time': u'添加时间',
            'site': u'站点',
            'user': u'用户',
        }

class NodeRecordAdmin(ModelView):
    '''节点记录管理'''
    can_create          = True # 打开添加
    can_view_details    = True # 打开细节显示
    can_export          = True # 打开导出
    column_display_pk   = True # 显示主键
    # 重命名列
    column_labels       = {
            'operator': u'操作者',
            'operation': u'操作动作',
            'time': u'操作时间',
            'node': u'节点',
        }

class NodeBackgroundTaskAdmin(ModelView):
    '''节点记录管理'''
    can_create          = True # 打开添加
    can_view_details    = True # 打开细节显示
    can_export          = True # 打开导出
    column_display_pk   = True # 显示主键
    # 去掉显示password这一列
    #  column_exclude_list = ['password', ]
    # ['username', 'telephone']这两列可修改
    column_editable_list = ['name',
                            'execute_time',
                            'action', ]
    # 打开索引,可按['username',]模糊索引，
    column_searchable_list = ['id']
    # 重命名列
    column_labels       = {
            'name': u'名称',
            'execute_time': u'执行时间',
            'action': u'执行动作',
            'period': u'执行周期',
            'alive': u'任务存活',
            'node': u'节点',
        }

class SiteAdmin(ModelView):
    '''用户管理'''
    can_create          = True # 打开添加
    can_view_details    = True # 打开细节显示
    can_export          = True # 打开导出
    column_display_pk   = True # 显示主键
    # 去掉显示password这一列
    #  column_exclude_list = ['password', ]
    # ['username', 'telephone']这两列可修改
    column_editable_list = ['name',
                            'cid',
                            'position',
                            'alive',
                            'status']
    # 打开索引,可按['username',]模糊索引，
    column_searchable_list = ['name']
    # 重命名列
    column_labels       = {
            'name': u'名称',
            'cid': u'唯一码',
            'number': u'编号',
            'position': u'位置',
            'status': u'状态',
            'alive': u'在线',
            'add_time': u'添加时间',
            'user': u'用户',
        }

myadmin.add_view(UserAdmin(User,db.session, category='用户'))
myadmin.add_view(NodeAdmin(Node,db.session, category='节点'))
myadmin.add_view(NodeRecordAdmin(NodeRecord,db.session, category='节点'))
myadmin.add_view(NodeBackgroundTaskAdmin(NodeBackgroundTask,db.session, category='节点'))
myadmin.add_view(SiteAdmin(Site,db.session, category='站点'))
